/**
 * Created by jiexin on 2017/8/25.
 */

layui.use(['form', 'element', 'table', 'layer'], function() {
    var form = layui.form;
    var element = layui.element;
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer; //弹层

    // var gitmodule = [{'modulename': 'AS-G41701', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': 'add README\n'}, {'version': 'v1.1', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}]}, {'modulename': 'DVM-H10106', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}]}, {'modulename': 'DVM-A15201', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}]}, {'modulename': 'AS-K41401', 'versions': [{'version': 'v1.0', 'versionname': '初始标签', 'message': '模块最初版本\n'}, {'version': 'v1.1', 'versionname': '删除不必要文件', 'message': '修改 Startup.ini文件'}, {'version': 'v1.2', 'versionname': '测试', 'message': '修改 Startup.ini文件'}]}, {'modulename': 'AS-K41103', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}, {'version': 'v1.1', 'versionname': '修改dll：AlarmPlugin.dll', 'message': '修改dll：AlarmPlugin.dll'}]}, {'modulename': 'DVM-K15001', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}]}, {'modulename': 'AS-M42001', 'versions': [{'version': 'v1.0', 'versionname': '提交项目', 'message': 'add README\n'}]}, {'modulename': 'AS-S41301', 'versions': [{'version': 'v1.0', 'versionname': '模块最初版本', 'message': '模块最初版本\n'}]}];

    for (var i = 0; i < gitmodule.length; i++) {
        if (gitmodule[i] !== undefined) {
            $("#module").append('<option value="'+ i + '">' + gitmodule[i]["modulename"] + '</option>');
        }
    }
    for (var n = 0; n < gitmodule[0]["versions"].length; n++) {
        $("#gitversion").append('<option value="'+ n + '">' + gitmodule[0]["versions"][n]["version"] + '</option>');
    }

    form.on('select(module)', function(mdata){
        console.log(mdata.value); //得到被选中的值
        var gitversions = gitmodule[mdata.value]["versions"];
        console.log(gitversions);
        var $a = $("#gitversion");
        $a.find("option").remove(); //清空之前选中的项
        for (var i=0; i < gitversions.length; i++) {
            console.log(gitversions[i]["version"]);
            $a.append('<option value="'+ i + '">' + gitversions[i]["version"] + '</option>');
        }
        form.render('select');
    });
    form.render('select');

    var table_format_add = [[
        {field: 'filename', align: 'center', title: '配置文件名', width: 160}
         , {field: 'optionname', align: 'center', title: '节名称', width: 100}
         , {field: 'parameter', align: 'center', title: '参数', width: 160}
         , {fixed: 'right',width: 200, align: 'center', toolbar: '#debarDemo'}
    ]];
    var adddata = [];
    $("#addtable").on('click', function() {
        $('#deploymentform').each(function () {
            console.log(10);
            //获取标签对于的一个属性
            var $obj = $(this);
            var tableid = $obj[0].id;
            var etaleid = '#' + tableid;
            var toolid = 'tool(' + tableid + ')';
            //var tableid = document.getElementById('update').id;
            console.log(tableid);
            if ($(filename).val() !== "" &&  $(optionname).val() !== "" && $(parameter).val() !== ""){
                var jsondata = {"filename":$(filename).val(),"optionname":$(optionname).val(),"parameter":$(parameter).val()};
                adddata.push(jsondata);
                $(filename).val('');
                $(optionname).val('');
                $(parameter).val('');
                console.log(adddata);
                createtable(etaleid, tableid, adddata, table_format_add, toolid);
                addtool(toolid, tableid);
            }else{
                layer.msg('数据填写不全')
            }
        });
    });

    function createtable(etaleid,tableid,datas,table_format,toolid) {
        table.render({
            elem: etaleid,
            id: tableid,
            //url: '/demo/table/user/',
            limit:10,
            page: true,
            stateSave: true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
            processing: true, //DataTables载入数据时，是否显示‘进度’提示
            scrollCollapse: true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变
            searching: true, //是否允许Datatables开启本地搜索
            data:datas,
            cols:table_format
        });
    }

    function addtool(toolid, tableid) {
        //监听工具条
        //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
        table.on(toolid, function (obj) {
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值
            var tr = obj.tr; //获得当前行 tr 的DOM对象
            var checkStatus = table.checkStatus(tableid);

            if (layEvent === 'del') {
                layer.confirm('真的删除行么',
                    function (index) {
                        obj.del(); //删除对应行（tr）的DOM结构
                        layer.close(index); //向服务端发送删除指令
                    });
            }
        });
    }

    //提交
    form.on('submit(submitde)', function(data){
        //console.log(data.elem); //被执行事件的元素DOM对象，一般为button对象
        //console.log(data.field); //当前容器的全部表单字段，名值对形式：{name: value}
        var formdata = data.field;
        var senddata = {};
        var module_name = gitmodule[formdata["module"]]["modulename"];
        var git_version = gitmodule[formdata["module"]]["versions"][formdata["gitversion"]]["version"];
        var checkStatus = table.checkStatus('deployment');
        var tabledata = checkStatus.data;

        //获取table所有数据
        var all_config = [];
        $(".layui-table-main").find('tbody').find('tr').each(function () {
            var one_config = [];
            $(this).find('td').each(function () {
                if ($(this).attr('data-field') !== '3') {
                    one_config.push($(this).text())
                }
            });
            all_config.push(one_config)
        });

        if ( all_config.length !==0 || formdata['config'] === "on" ){
            senddata["zcellname"] = zcellname;
            senddata["ip"] = zcellip;
            senddata["modulename"] = module_name;
            senddata["version"] = git_version;
            senddata["filename"] = formdata["nodename"];
            senddata["configuration"] = all_config;
            if (formdata['config'] === "on" ) {
                senddata["configchoose"] = "on";
            }else {
                senddata["configchoose"] = "off";
            }
            console.log(senddata);
            $.ajax({
                url: "/deploymentsend/",
                dataType: 'json',
                type: 'POST',
                data: {"data": JSON.stringify(senddata)},
                success: function (dedata) {
                    if (dedata["status"] === 0){
                        layer_close();
                    } else{
                        layer.msg("部署失败！")
                    }
                }
            });

            // layer_close();
        }else{
            layer.msg('未选中基本配置或修改配置项');
        }
        return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
    });


    form.verify({
        // textbox: function(value){ //value：表单的值、item：表单的DOM对象
        //     if(value.length < 7){
        //         return '标题至少得7个字符啊';
        //     }
        // }
        textbox: [/[A-Z]{1,5}[0-9]{6,8}$/, 'node命名格式不正确，例如：KLX0300101']
    });



    $('.demoTable .layui-btn').on('click', function() {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });
});




